home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SSSSTTTTIIIIOOOO((((3333XXXX)))) SSSSTTTTIIIIOOOO((((3333XXXX))))
-
-
-
- NNNNAAAAMMMMEEEE
- stio - routines that provide a binary read/write interface to the MIPS
- symbol table
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyymmmmssss....hhhh>>>>
-
- lllloooonnnngggg sssstttt____rrrreeeeaaaaddddbbbbiiiinnnnaaaarrrryyyy((((cccchhhhaaaarrrr ****ffffiiiilllleeeennnnaaaammmmeeee,,,, cccchhhhaaaarrrr hhhhoooowwww))));;;;
-
- lllloooonnnngggg sssstttt____rrrreeeeaaaaddddsssstttt((((lllloooonnnngggg ffffnnnn,,,, cccchhhhaaaarrrr hhhhoooowwww,,,, lllloooonnnngggg ffffbbbbaaaasssseeee,,,, ppppCCCCHHHHDDDDRRRRRRRR ppppcccchhhhddddrrrr,,,, lllloooonnnngggg ffffllllaaaaggggssss))));;;;
-
- vvvvooooiiiidddd sssstttt____wwwwrrrriiiitttteeeebbbbiiiinnnnaaaarrrryyyy((((cccchhhhaaaarrrr ****ffffiiiilllleeeennnnaaaammmmeeee,,,, lllloooonnnngggg ffffllllaaaaggggssss))));;;;
-
- vvvvooooiiiidddd sssstttt____wwwwrrrriiiitttteeeesssstttt((((lllloooonnnngggg ffffnnnn,,,, lllloooonnnngggg ffffllllaaaaggggssss))));;;;
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The CHDRR structure (see <_c_m_p_l_r_s/_s_t_s_u_p_p_o_r_t._h> and the _s_t_c_u manual page)
- represents a symbol table in memory. A new CHDRR can be created by
- reading a symbol table in from disk. _S_t__r_e_a_d_b_i_n_a_r_y and _s_t__r_e_a_d_s_t read a
- symbol table in from disk.
-
- _S_t__r_e_a_d_b_i_n_a_r_y takes the file name of the symbol table and assumes the
- symbol table header (_H_D_R_R in <_s_y_m._h>) occurs at the beginning of the
- file. _S_t__r_e_a_d_s_t assumes that its file number references a file positioned
- at the beginning of the symbol table header and that the _f_b_a_s_e parameter
- specifies where the object or symbol table file is based (for example,
- non-zero for archives).
-
- The second parameter to the read routines can be `r' for read only or `a'
- for appending to the symbol table. Existing local symbol, line,
- procedure, auxiliary, optimization, and local string tables can not be
- appended. If they didn't exist on disk, they can be created. This
- restriction stems from the allocation algorithm for those symbol table
- sections when read in from disk and follows the standard pattern for
- building the symbol table.
-
- The symbol table can be read incrementally. If _p_c_h_d_r is zero, _s_t__r_e_a_d_s_t
- assumes that no symbol table has been read yet; therefore, it reads in
- the symbol table header and file descriptors. The _f_l_a_g_s argument is a
- bit mask that defines what other tables should be read. _S_t__p* constants
- for each table, defined in <_c_m_p_l_r_s/_s_t_s_u_p_p_o_r_t._h>, can be ORed. If _f_l_a_g_s
- equals `-1', all tables are read. If _p_c_h_d_r is set, the tables specified
- by _f_l_a_g_s are added to the tables that have already been read. _P_c_h_d_r's
- value can be gotten from _s_t__c_u_r_r_e_n_t__p_c_h_d_r. See _s_t_c_u(3).
-
- Line number entries are encoded on disk, the read routines expand them to
- longs. See the _M_I_P_S _S_y_s_t_e_m _P_r_o_g_r_a_m_m_e_r _G_u_i_d_e.
-
- If the version stamp is out of date, a warning message is issued to
- stderr. If the magic number in the HDRR is incorrect, _s_t__e_r_r_o_r is
- called. All other errors cause the read routines to read non-zero;
- otherwise, a zero is returned.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- SSSSTTTTIIIIOOOO((((3333XXXX)))) SSSSTTTTIIIIOOOO((((3333XXXX))))
-
-
-
- _S_t__w_r_i_t_e_b_i_n_a_r_y and _s_t__w_r_i_t_e_s_t are symmetric to the read routines,
- excluding the _h_o_w and _p_c_h_d_r parameters. The _f_l_a_g_s parameter is a bit mask
- that defines what table should be written. _S_t__p* _c_o_n_s_t_a_n_t_s _f_o_r _e_a_c_h
- _t_a_b_l_e, _d_e_f_i_n_e_d _i_n <_c_m_p_l_r_s/_s_t_s_u_p_p_o_r_t._h>, can be ORed. If _f_l_a_g_s equals `-
- 1', all tables are written.
-
- The write routines write sections of the table in the approved order, as
- specified in the link editor (_l_d) specification.
-
- Line numbers are compressed on disk. See the _M_I_P_S _S_y_s_t_e_m _P_r_o_g_r_a_m_m_e_r
- _G_u_i_d_e.
-
- The write routines start all sections of the symbol table on four-byte
- boundaries.
-
- If the write routines encounter an error, _s_t__e_r_r_o_r is called. After
- writing the symbol table, further access to the table by other routines
- is undefined.
-
- The programs must be loaded with the object file access routine library
- libmld.a.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- stcu(3x), stfe(3x), stfd(3x)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-